const api = require('../../api/api');
Page({
  /**
   * 页面的初始数据
   */
  data: {
    MoreData: {},
    start: 0,
    count: 12
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 立马开启加载中
    wx.showNavigationBarLoading()
    // 判断传递的参数
    switch (options.id) {
      case 'movie_showing':
        this.setData({
          id: 'cinemaHit'
        })
        break;
      case 'movie_latest':
        this.setData({
          id: 'recentHits'
        })
        break;
      case 'movie_free_stream':
        this.setData({
          id: 'freeOnline'
        })
        break;
    }
  },

  onReady() {
    this.loadMoreData();
  },

  // 加载更多数据
  loadMoreData() {
    return api[this.data.id]({
      start: this.data.start,
      count: this.data.count
    }).then(data => {
      wx.hideNavigationBarLoading() // 数据加载成功后关闭加载中
      let list = this.data.MoreData.list || []
      let MoreData = {
        title: data.subject_collection.name,
        list: list.concat(data.subject_collection_items)
      }
      this.setData({
        MoreData,
        start: this.data.start + this.data.count,
        total: data.total
      })
      // 动态定义顶部栏标题
      wx.setNavigationBarTitle({
        title: this.data.MoreData.title
      })
      // 如果没有更多，则显示没有更多数据
      if (this.data.start > this.data.total) {
        this.setData({
          noMore: true
        })
      }
    })
  },

  // 上拉加载更多
  onReachBottom() {
    // 如果没有更多，则显示没有更多数据
    if (this.data.start > this.data.total) {
      return this.setData({
        noMore: true
      })
    }

    // 显示loading
    this.setData({
      showLoading: true
    })

    // 最后隐藏掉loading
    this.loadMoreData().then(() => {
      this.setData({
        showLoading: false
      })
    })
  }
})